#创建父类
class Person:
  def __init__(self, fname, age):
    self.firstname = fname
    self.age = age

  def printname(self):
    print(self.firstname, self.age)

# 使用 Person 来创建对象，然后执行 printname 方法：
x = Person("小明", "12")
x.printname()
#输出：小明 12

#创建子类
class Student(Person):
  pass

a = Student('小红', '12')
a.printname()
#输出：小红 12

#当您添加 __init__() 函数时，子类将不再继承父的 __init__() 函数。
#如需保持父的 __init__() 函数的继承，请添加对父的 __init__() 函数的调用：
class Student(Person):
  def __init__(self, fname, lname):
    Person.__init__(self, fname, lname)

a = Student('小红', '12')
a.printname()
#输出：小红 12

#super() 函数，它会使子类从其父继承所有方法和属性：
class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)


#添加属性方法
class Student(Person):
  def __init__(self, fname, lname, year):
    super().__init__(fname, lname)
    self.graduationyear = year

  def welcome(self):
      print("Welcome", self.firstname, self.age, "to the class of", self.graduationyear)

x = Student("小明", "12", 2019)
print(x.graduationyear)
#输出：2019
x.welcome()
#输出：Welcome 小明 12 to the class of 2019